class WorldManager {
    private entityManager: EntityManager;
    private componentManager: ComponentManager;
    private systemManager: SystemManager;

    constructor() {
        this.entityManager = new EntityManager();
        this.componentManager = new ComponentManager();
        this.systemManager = new SystemManager();
    }

    /**
     * 获取 EntityManager 实例
     * @returns EntityManager 实例
     */
    getEntityManager(): EntityManager {
        return this.entityManager;
    }

    /**
     * 获取 ComponentManager 实例
     * @returns ComponentManager 实例
     */
    getComponentManager(): ComponentManager {
        return this.componentManager;
    }

    /**
     * 获取 SystemManager 实例
     * @returns SystemManager 实例
     */
    getSystemManager(): SystemManager {
        return this.systemManager;
    }

    /**
     * 注册一个组件类型
     * @param componentType 组件类型
     */
    registerComponent<T>(componentType: ComponentType<T>): void {
        this.componentManager.registerComponent(componentType);
    }

    /**
     * 注册一个系统
     * @param system 系统实例
     */
    registerSystem(system: System): void {
        this.systemManager.registerSystem(system);
    }

    /**
     * 启用一个系统
     * @param system 系统实例
     */
    enableSystem(system: System): void {
        this.systemManager.enableSystem(system);
    }

    /**
     * 禁用一个系统
     * @param system 系统实例
     */
    disableSystem(system: System): void {
        this.systemManager.disableSystem(system);
    }

    /**
     * 更新所有启用的系统
     * @param deltaTime 时间间隔
     */
    updateSystems(deltaTime: number): void {
        this.systemManager.updateSystems(deltaTime);
    }
}
